//
// Created by Administrator on 2023/4/24.
/*
http://www.aisichuang.net/#/main/Competition/TitlePage?id=1581&raceId=1300&stateanswer=false
 找单词
题目描述
时间限制: 1000 MS
内存限制: 256 MB
编程找出给定字符串中隐藏的 aisichuang 单词。

注意：aisichuang 字样可以是不同大小写字母的组合，但必须是连续的 10 个字符。

例如：AIsiCHuang、aiSIchuANg、AiSiChuANG 等等。
输入格式

一行一个字符串，长度不超过 10000
输出格式

找出字符串中所有的 aisichuang，每行输出一个。

如果超过 5 个，则只输出前 5 个，并在第 6 行输出总个数。
样例 #1
样例输入 #1
aiSIchuang, AiSIchuang, 3 aiSIchUANg  aisi234#!
样例输出 #1
aiSIchuang
AiSIchuang
aiSIchUANg
讲解视频:
https://app19lud1c73566.h5.xiaoeknow.com/p/course/video/v_643dfeaae4b0b2d1c4095ed5?product_id=p_643dfc41e4b0b2d1c4095ced
 * */
// 老师的方法,用string的子串方法substr截取, 每次遍历往后找十个字符(key的长度)

#include <iostream>

using namespace std;

bool is_two_string_same(string a, string b)
{
    if (a.size() != b.size())
        return false;
    for (int i = 0; i < a.size(); ++i)
    {
        if (tolower(a[i]) != tolower(b[i]))
        { return false; }
    }
    return true;
}

int main()
{
    string s, key = "aisichuang";
    int count = 0;
    // 用getline把停止识别的符号设置为‘\n’ 防止输入空格后 后边的数取不到了
//    getline(cin, s, '\n');
    getline(cin, s);
//    length,size两个方法的返回值一样
//    printf("length: %d\n",s.length());
//    printf("size: %d",s.size());
//    注意 这里要-9而不是-10
//    for (int i = 0; i < s.size() -9; ++i)
    for (int i = 0; i < s.size() ; ++i)
    {
        // 最后的9个就不用检查了
        if (i+9>s.size())
            break;
        string t = s.substr(i, 10);
        // 相等, 则计数器++, 且打印, 然后继续向后找
        if (is_two_string_same(t, key))
        {
            if (count<5)
            cout << t << endl;
            count++;
        }

    }
    if (count > 5)
    {
        cout << count << endl;
    }
//    cout<<count<<endl;
    return 0;
}
